// 引入Sequelize模块
const Sequelize = require('sequelize');

// 引入数据库实例
const db = require('../db');

const systemConfig = db.define("systemConfig", {
    // 主键
    objectId: {
        type: Sequelize.INTEGER,
        allowNull: false,
        unique: true,
        primaryKey: true,
        autoIncrement: true,
    },

    // 配置键（如 baidu_token, authorization）
    configKey: {
        type: Sequelize.STRING(50),
        allowNull: false,
        unique: true,
    },

    // 配置值（token内容）
    configValue: {
        type: Sequelize.TEXT,
        allowNull: false,
    },

    // 配置名称（显示用，如"百度网盘Token"）
    configName: {
        type: Sequelize.STRING(100),
        allowNull: false,
    },

    // 过期时间戳（毫秒）
    expiresTime: {
        type: Sequelize.BIGINT,
        defaultValue: 0,
        allowNull: false,
    },

    // 备注
    remark: {
        type: Sequelize.STRING(500),
        defaultValue: '',
    },

    createdAt: {
        type: Sequelize.DATE,
        get() {
            const rawValue = this.getDataValue('createdAt');
            return dateFormat(rawValue, 'yyyy-mm-dd HH:MM:ss');
        }
    },

    updatedAt: {
        type: Sequelize.DATE,
        get() {
            const rawValue = this.getDataValue('updatedAt');
            return dateFormat(rawValue, 'yyyy-mm-dd HH:MM:ss');
        }
    },

}, {
    // 是否支持驼峰
    underscored: false,
    // MySQL数据库表名
    tableName: "systemConfig",
});

// 同步数据库表（首次运行时取消注释）
// (async () => {
//     await systemConfig.sync({ alter: true });
//     console.log("系统配置表同步成功");
// })();

module.exports = systemConfig;
